# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.

"""
Scoring functionality for evaluating AI model responses across various dimensions
including harm detection, objective completion, and content classification.
"""

from pyrit.score.scorer import Scorer
from pyrit.score.scorer_prompt_validator import ScorerPromptValidator
from pyrit.score.float_scale.float_scale_scorer import FloatScaleScorer
from pyrit.score.true_false.true_false_scorer import TrueFalseScorer

from pyrit.score.true_false.true_false_score_aggregator import TrueFalseScoreAggregator, TrueFalseAggregatorFunc
from pyrit.score.float_scale.float_scale_score_aggregator import (
    FloatScaleScoreAggregator,
    FloatScaleScorerByCategory,
    FloatScaleScorerAllCategories,
)

from pyrit.score.float_scale.azure_content_filter_scorer import AzureContentFilterScorer
from pyrit.score.batch_scorer import BatchScorer
from pyrit.score.true_false.true_false_composite_scorer import TrueFalseCompositeScorer
from pyrit.score.true_false.float_scale_threshold_scorer import FloatScaleThresholdScorer
from pyrit.score.true_false.self_ask_general_true_false_scorer import SelfAskGeneralTrueFalseScorer
from pyrit.score.float_scale.self_ask_general_float_scale_scorer import SelfAskGeneralFloatScaleScorer
from pyrit.score.true_false.gandalf_scorer import GandalfScorer
from pyrit.score.human.human_in_the_loop_gradio import HumanInTheLoopScorerGradio
from pyrit.score.float_scale.insecure_code_scorer import InsecureCodeScorer
from pyrit.score.true_false.markdown_injection import MarkdownInjectionScorer
from pyrit.score.float_scale.plagiarism_scorer import PlagiarismScorer, PlagiarismMetric
from pyrit.score.true_false.prompt_shield_scorer import PromptShieldScorer

from pyrit.score.scorer_evaluation.metrics_type import MetricsType
from pyrit.score.scorer_evaluation.human_labeled_dataset import (
    HarmHumanLabeledEntry,
    HumanLabeledDataset,
    HumanLabeledEntry,
    ObjectiveHumanLabeledEntry,
)
from pyrit.score.scorer_evaluation.scorer_evaluator import (
    HarmScorerEvaluator,
    HarmScorerMetrics,
    ObjectiveScorerEvaluator,
    ObjectiveScorerMetrics,
    ScorerEvaluator,
    ScorerMetrics,
)
from pyrit.score.true_false.self_ask_category_scorer import ContentClassifierPaths, SelfAskCategoryScorer
from pyrit.score.float_scale.self_ask_likert_scorer import LikertScalePaths, SelfAskLikertScorer
from pyrit.score.true_false.self_ask_refusal_scorer import SelfAskRefusalScorer
from pyrit.score.float_scale.self_ask_scale_scorer import SelfAskScaleScorer
from pyrit.score.true_false.self_ask_true_false_scorer import (
    SelfAskTrueFalseScorer,
    TrueFalseQuestion,
    TrueFalseQuestionPaths,
)
from pyrit.score.true_false.substring_scorer import SubStringScorer
from pyrit.score.true_false.decoding_scorer import DecodingScorer
from pyrit.score.true_false.true_false_inverter_scorer import TrueFalseInverterScorer
from pyrit.score.true_false.self_ask_question_answer_scorer import SelfAskQuestionAnswerScorer
from pyrit.score.float_scale.look_back_scorer import LookBackScorer
from pyrit.score.float_scale.video_float_scale_scorer import VideoFloatScaleScorer
from pyrit.score.true_false.video_true_false_scorer import VideoTrueFalseScorer
from pyrit.score.true_false.question_answer_scorer import QuestionAnswerScorer

__all__ = [
    "AzureContentFilterScorer",
    "BatchScorer",
    "ContentClassifierPaths",
    "DecodingScorer",
    "FloatScaleScoreAggregator",
    "FloatScaleScorerAllCategories",
    "FloatScaleScorerByCategory",
    "FloatScaleScorer",
    "FloatScaleThresholdScorer",
    "GandalfScorer",
    "HarmHumanLabeledEntry",
    "HarmScorerEvaluator",
    "HarmScorerMetrics",
    "HumanInTheLoopScorerGradio",
    "HumanLabeledDataset",
    "HumanLabeledEntry",
    "InsecureCodeScorer",
    "LikertScalePaths",
    "LookBackScorer",
    "MarkdownInjectionScorer",
    "MetricsType",
    "ObjectiveHumanLabeledEntry",
    "ObjectiveScorerEvaluator",
    "ObjectiveScorerMetrics",
    "PlagiarismMetric",
    "PlagiarismScorer",
    "PromptShieldScorer",
    "QuestionAnswerScorer",
    "Scorer",
    "ScorerEvaluator",
    "ScorerMetrics",
    "ScorerPromptValidator",
    "SelfAskCategoryScorer",
    "SelfAskGeneralFloatScaleScorer",
    "SelfAskGeneralTrueFalseScorer",
    "SelfAskLikertScorer",
    "SelfAskQuestionAnswerScorer",
    "SelfAskRefusalScorer",
    "SelfAskScaleScorer",
    "SelfAskTrueFalseScorer",
    "SubStringScorer",
    "TrueFalseCompositeScorer",
    "TrueFalseInverterScorer",
    "TrueFalseQuestion",
    "TrueFalseQuestionPaths",
    "TrueFalseScoreAggregator",
    "TrueFalseAggregatorFunc",
    "TrueFalseScorer",
    "VideoFloatScaleScorer",
    "VideoTrueFalseScorer",
]
